﻿export default (miniType = "ALIPAY") => {
  // 存储格式化后的字典数据
  let miniCategoryDictData = [];
  let auditStatusDictData = [];

  // 创建状态映射函数
  const getStatusLabel = statusValue => {
    // 如果字典数据已加载，使用字典数据
    if (auditStatusDictData && auditStatusDictData.length > 0) {
      const statusItem = auditStatusDictData.find(item => item.value === statusValue);
      return statusItem ? statusItem.label : statusValue || "-";
    }

    // 否则使用硬编码映射作为回退
    const FALLBACK_MAP = {
      NONE: "未审核",
      PROCESS: "审核中",
      SUCCESS: "审核通过",
      FAIL: "审核失败",
    };
    return FALLBACK_MAP[statusValue] || statusValue || "-";
  };

  // 字典数据格式化方法
  const miniCategoryDictFormatter = res => {
    const list = Array.isArray(res.data) ? res.data : [];
    miniCategoryDictData = list
      .filter(item => item !== null && item !== undefined && item !== "") // 过滤掉空值
      .map(item => {
        // 如果数据是字符串格式，直接使用
        if (typeof item === "string") {
          return { label: item, value: item };
        }
        // 如果是对象格式，使用 dictLabel 和 dictValue
        if (typeof item === "object" && item !== null) {
          return { label: item.dictLabel || item.label || item, value: item.dictValue || item.value || item };
        }
        // 其他情况，使用索引作为值
        return { label: String(item), value: String(item) };
      });
    return miniCategoryDictData;
  };
  const auditStatusDictFormatter = res => {
    const list = Array.isArray(res.data) ? res.data : [];
    console.error(list);
    auditStatusDictData = list.map(i => ({ label: i.dictLabel, value: i.dictValue }));
    return auditStatusDictData;
  };

  const searchOption = ref({
    labelWidth: "auto",
    menuPosition: "fixed",
    formConfig: {
      // 品牌ID
      customerId: {
        label: "品牌ID",
        component: "el-input",
        placeholder: "请输入品牌ID",
        clearable: true,
      },
      // 品牌名称
      customerName: {
        label: "品牌名称",
        component: "el-input",
        placeholder: "请输入品牌名称",
        clearable: true,
      },
      // 小程序名称
      miniName: {
        label: "小程序名称",
        component: "el-input",
        placeholder: "请输入小程序名称",
        clearable: true,
      },
      // APPID
      appId: {
        label: "APPID",
        component: "el-input",
        placeholder: "请输入APPID",
        clearable: true,
      },
      // 小程序类目
      miniCategory: {
        label: "小程序类目",
        component: "el-select",
        isCollapse: true,
        dicUrl: "/support-backend/miniProgram/categoryOptions",
        dicQuery: { miniType }, // 根据传入的平台参数动态设置
        dicFormatter: miniCategoryDictFormatter,
        dicProps: { label: "label", value: "value" },
        placeholder: "请选择类目",
        clearable: true,
      },
      // 授权时间（范围）
      authorizeTime: {
        label: "授权时间",
        isCollapse: true,
        component: "el-date-picker",
        type: "daterange",
        valueFormat: "YYYY-MM-DD",
        startPlaceholder: "开始日期",
        endPlaceholder: "结束日期",
        rangeSeparator: " ~ ",
        unlinkPanels: true,
        clearable: true,
      },
      // 当前版本（下拉可选/也可输入）
      currentVersion: {
        label: "当前版本",
        isCollapse: true,
        component: "el-input",
        placeholder: "请输入版本号",
        clearable: true,
      },
      // 提审时间（范围）
      submitTime: {
        label: "提审时间",
        isCollapse: true,
        component: "el-date-picker",
        type: "daterange",
        valueFormat: "YYYY-MM-DD",
        startPlaceholder: "开始日期",
        endPlaceholder: "结束日期",
        rangeSeparator: " ~ ",
        unlinkPanels: true,
        clearable: true,
      },
      // 审核状态
      auditStatus: {
        label: "审核状态",
        isCollapse: true,
        component: "el-select",
        dicUrl: "/support-backend/dict/listChildrenByDictCode",
        dicQuery: { dictCode: "qingyun.mini.audit.status" },
        dicFormatter: auditStatusDictFormatter,
        dicProps: { label: "label", value: "value" },
        placeholder: "请选择审核状态",
        clearable: true,
      },
    },
  });

  // 表格配置（去除所有 search* 配置）
  const tableOption = ref(
    Utils.tools.deleteSearchConfig({
      header: false, // 表头工具栏不要（按你图里 BaseCard 顶部控制）
      addBtn: false, // 列表不在表头新增
      editBtn: false, // 行内不出现“编辑/删除”按钮（操作区我们一般自定义）
      delBtn: false,
      border: false,
      // menuWidth: 300,    // 如需行内自定义操作区宽度可放开
      column: {
        // 品牌ID
        customerId: {
          label: "品牌ID",
          width: 120,
        },
        // 品牌名称
        customerName: {
          label: "品牌名称",
          width: 120,
        },
        // 小程序logo
        logoUrl: {
          label: "小程序logo",
          width: 120,
          // 用 slot 渲染成图片（页面里用 `miniProgramLogo` slot）
          slot: true,
        },
        // 小程序名称
        miniName: {
          label: "小程序名称",
          width: 160,
        },
        // APPID
        appId: {
          label: "APPID",
          minWidth: 220,
          showOverflowTooltip: true,
        },
        // 小程序类目
        miniCategory: {
          label: "小程序类目",
          width: 140,
        },
        // 授权时间
        authTime: {
          label: "授权时间",
          type: "datetime",
          format: "YYYY-MM-DD HH:mm:ss",
          valueFormat: "YYYY-MM-DD HH:mm:ss",
          minWidth: 180,
        },
        // 当前版本
        currentVersion: {
          label: "当前版本",
          width: 140,
        },
        // 最近提审版本
        latestAuditVersion: {
          label: "最近提审版本",
          width: 160,
        },
        // 提审时间
        latestAuditTime: {
          label: "提审时间",
          type: "datetime",
          format: "YYYY-MM-DD HH:mm:ss",
          valueFormat: "YYYY-MM-DD HH:mm:ss",
          minWidth: 180,
        },
        // 审核状态
        auditStatus: {
          label: "审核状态",
          width: 120,
          formatter: row => {
            console.error("auditStatusDictData:", auditStatusDictData);
            console.error("row.auditStatus:", row.auditStatus);
            return getStatusLabel(row.auditStatus);
          },
        },
      },
    })
  );
  return { searchOption, tableOption };
};
